package br.com.sigupper.bean;

import java.util.ArrayList;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.bean.ViewScoped;

import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.Transaction;

import br.com.sigupper.entidades.Categoria;
import br.com.sigupper.entidades.Produto;
import br.com.sigupper.util.GenericCrud;
import br.com.sigupper.util.HibernateUtil;

@ManagedBean(name="produtoBean")
@ViewScoped
public class ProdutoBean {
	
	Produto produtoSelecionado = new Produto();
	Integer categoriaId;
	List<Categoria> categorias = new ArrayList<Categoria>();
	
	public Integer getCategoriaId() {
		return categoriaId;
	}

	public void setCategoriaId(Integer categoriaId) {
		this.categoriaId = categoriaId;
	}

	
	public void setProdutoSelecionado(Produto produtoSelecionado) {
		this.produtoSelecionado = produtoSelecionado;
	}

	public void salvar(){
		
		GenericCrud gc = new GenericCrud();
		Session sessao = HibernateUtil.getSession().openSession();
		
		Categoria cat = (Categoria) sessao.get(Categoria.class,categoriaId);
		produtoSelecionado.setCategoria(cat);		
			
		gc.salvar(produtoSelecionado);
		produtoSelecionado = new Produto();
	}

    public void removeProduto() {
    	GenericCrud gc = new GenericCrud();
    	gc.excluir(produtoSelecionado);
    } 
   
    public List<Categoria> getCategoria() {

        Session sessao = HibernateUtil.getSession().openSession();
     
        Criteria cri = sessao.createCriteria(Categoria.class);
        categorias =  cri.list();
        return categorias;
    }
    
	
	public Produto getProdutoSelecionado() {
		return produtoSelecionado;
	}

	public void setCategoriaSelecionada(Produto produtoSelecionado) {
		this.produtoSelecionado = produtoSelecionado;
	}
	
	
}
